#!/bin/bash                                                                                                                      
 
#定义变量
HOST="localhost"
PORT=3306
USER='root'
PASSWORD='123456'
 
if [ ! -z "${PASSWORD}" ];then
    CMD="mysql -h${HOST} -P${PORT} -u${USER} -p${PASSWORD} -e "
else
    CMD="mysql -h${HOST} -P${PORT} -u${USER} -e "
fi
#echo ${CMD}

cmd_list="version\ndatadir\nport\nsocket\ncharacter_set_server\nlower_case_table_names\ninnodb_version\ntransaction_isolation\ninteractive_timeout\nwait_timeout\nback_log\nmax_connections\nlog_bin\nbinlog_format\nexpire_logs_days\nopen_files_limit\nthread_cache_size\nslow_query_log\nlong_query_time\nthreads_cached\nthreads_connected\nthreads_created\nthreads_running\nuptime"

get_var_value(){
	$CMD "show variables like \"$1\";" 2> /dev/null | tail -1 | awk '{print $2}'
}

get_sts_value(){
	$CMD "show status like \"$1\";" 2> /dev/null | tail -1 | awk '{print $2}'
}


case $1 in 
#版本
version)
	get_var_value $1
	;;
#数据目录
datadir)
	get_var_value $1
	;;
#端口
port)
	get_var_value $1
	;;
#socket文件
socket)
	get_var_value $1
	;;
#服务端字符集
character_set_server)
	get_var_value $1
	;;
#是否启用忽略表名大小写
lower_case_table_names)
	get_var_value $1
	;;
#InnoDB版本
innodb_version)
	get_var_value $1
	;;
#事务级别
transaction_isolation)
	get_var_value $1
	;;
#交互超时时间
interactive_timeout)
	get_var_value $1
	;;
#非交互超时时间
wait_timeout)
	get_var_value $1
	;;
#TCP/IP监听队列大小
back_log)
	get_var_value $1
	;;
#最大连接数
max_connections)
	get_var_value $1
	;;
#是否启用binlog日志
log_bin)
	get_var_value $1
	;;
#binlog格式
binlog_format)
	get_var_value $1
	;;
#binlog保留日期
expire_logs_days)
	get_var_value $1
	;;
#打开文件数限制
open_files_limit)
	get_var_value $1
	;;
#缓冲池大小
thread_cache_size)
	get_var_value $1
	;;
#是否启用慢日志
slow_query_log)
	get_var_value $1
	;;
#慢日志超时时间
long_query_time)
	get_var_value $1
	;;
#缓存线程数
threads_cached)
	get_sts_value $1
	;;
#当前连接线程数
threads_connected)
	get_sts_value $1
	;;
#创建线程数
threads_created)
	get_sts_value $1
	;;
#运行线程数
threads_running)
	get_sts_value $1
	;;
uptime)
	get_sts_value $1
	;;
*)
	echo -e ${cmd_list}
esac
